5ca99a544e95144c590aed9037220ccbd6056b05,drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java,OutputMarshaller,writeNodeInstance,#MarshallerWriteContext#NodeInstance#,660
Before Change
compositeNodeInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
Map<String, Object> variables = variableScopeInstance.getVariables();
stream.writeInt( variables.size() );
for ( Map.Entry<String, Object> entry : variables.entrySet() ) {
stream.writeUTF( entry.getKey() );
stream.writeObject( entry.getValue() );
}
for ( NodeInstance subNodeInstance : compositeNodeInstance.getNodeInstances() ) {
stream.writeShort( PersisterEnums.NODE_INSTANCE );
writeNodeInstance( context, subNodeInstance );
}
After Change
(CompositeContextNodeInstance) nodeInstance;
VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
compositeNodeInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
Map<String, Object> variables = variableScopeInstance.getVariables();
List<String> keys = new ArrayList<String>(variables.keySet());
Collections.sort(keys, new Comparator<String>() {
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
stream.writeInt( keys.size() );
for ( String key : keys ) {
stream.writeUTF( key );
stream.writeObject( variables.get(key) );
}
List<NodeInstance> nodeInstances = new ArrayList<NodeInstance>(compositeNodeInstance.getNodeInstances());
Collections.sort(nodeInstances, new Comparator<NodeInstance>() {
public int compare(NodeInstance o1, NodeInstance o2) {
return (int) (o1.getId() - o2.getId());
}
});
for ( NodeInstance subNodeInstance : nodeInstances ) {
stream.writeShort( PersisterEnums.NODE_INSTANCE );
writeNodeInstance( context, subNodeInstance );